package com.hippo.javacore.javaiostream.file;

import java.io.File;

/**
 * @ClassName SearchFile
 * @Description TODO 方法递归-实现文件搜索
 * @Author tangxl
 * @create 2023-04-04 16:53
 **/
public class SearchFile {
    public static void main(String[] args) {
        searchFile(new File("study-commons/java-file-iostream/src/main/resources"), "text.txt");
    }

    /**
     * TODO 递归搜索文件
     * @param dir 搜索的目录
     * @param fileName 搜索的文件名
     */
    public static void searchFile(File dir, String fileName) {
        // 1.获取当前目录下的所有文件和目录
        File[] files = dir.listFiles();
        if(files != null && files.length > 0) {
            // 2.遍历files数组
            for (File file : files) {
                // 3.判断file是否是一个目录
                if (file.isDirectory()) {
                    // 4.如果是目录，继续递归搜索
                    searchFile(file, fileName);
                } else {
                    // 5.如果是文件，判断文件名是否和搜索的文件名相同
                    if (file.getName().equals(fileName)) {
                        // 6.如果相同，输出文件的绝对路径
                        System.out.println("文件路径："+file.getAbsolutePath());
                    }
                }
            }
        }

    }

}
